<?php 
class funcionarioController extends CController{
    public $model_name = 'venda/funcionario';
    private $cadastrando = 'venda/funcionario/cadastrando';
    
    public function show($display = true, $link = "") {
        if(!$this->model->HasDecisor($this->item['__venda_empresa_cod'])) Redirect(LINK."/formulario");
        if(isset($_SESSION[$this->cadastrando])) {
            unset($_SESSION[$this->cadastrando]);
            Redirect(CURRENT_MODULE."/empresa/show/".$this->item['__venda_empresa_cod']);
        }
        parent::show($display, $link);
    }


    public function formulario($display = true, $link = "") {
        if(empty($_POST)){
            if(!isset($_SESSION['venda/empresa'])){
                if(isset($_SESSION[$this->cadastrando])) { unset($_SESSION[$this->cadastrando]);}
                Redirect (CURRENT_MODULE ."/empresa/");
            }
            $_SESSION[$this->cadastrando] = true;
            $cod = $this->model->createEmpty($_SESSION['venda/empresa']);
            Redirect("venda/funcionario/edit/$cod");
            return;
        }
        parent::formulario($display, $link);
    }
    
    public function edit($display = true, $link = "") {
        
        if($this->item['__venda_funcionario_status'] == 'unsaved'){
            EventTube::removeItemFromMenu('body-top', 'Voltar para Empresa');
        }
        
        if(isset($_SESSION['venda/empresa'])){
            $this->LoadModel('venda/empresa', 'emp');
            $empresa = $this->emp->getSimpleItem($_SESSION['venda/empresa'], array('venda_empresa_nome'));
            $emp = array_shift($empresa);
            if($this->model->HasDecisor($_SESSION['venda/empresa']))$this->genTags("<b>$emp</b> - Cadastro de Funcionário");
            else $this->genTags("<b>$emp</b> - Cadastro de Decisor");
        }else {
            if(isset($_SESSION[$this->cadastrando])) { unset($_SESSION[$this->cadastrando]);}
            Redirect ("venda/equipe/empresa");
        }
        
        if($this->verifyUserCanEdit())
            parent::edit($display, $link);
        else $this->show();
    }
    
    public function apagar() {
        $this->prevent_redirect();
        if($this->verifyUserCanEdit()){
            parent::apagar();
            $status = $this->getVar('status');
            if($status == '1'){
                cookie::destroy('visiting');
                Redirect ('venda/empresa/show/'.$this->item['__venda_empresa_cod']);
            }
            else $this->show();
        }else $this->show();
        
    }
    
     private function verifyUserCanEdit(){
        
        //se usuário tem a permissão de editar dados antigos
        $this->LoadModel('usuario/perfil', 'perf');
        if($this->perf->hasPermissionByName('Venda_Old_Empresa'))
            return true;
        
        //se usuário não é o autor da empresa
        if($this->item["__cod_usuario"] != usuario_loginModel::CodUsuario()){
            $this->registerVar('erro', 'Somente quem criou a empresa ou um administrador podem modificar este funcionário');
            return false;
        }
        
        //se o prazo para editar a empresa não terminou
        if(timeResource::diffDate($this->item['venda_funcionario_criadoem'], '', 'h') <= 24)
            return true;
        
        $this->registerVar('erro', 'O prazo para alterar os dados deste funcionário está encerrado!');
        return false;
        
    }
}
?>